home *** CD-ROM | disk | FTP | other *** search
- // the declaration of class SEGMENT
- // Copyright (C) 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
-
- #ifndef _SEG_H_
- #define _SEG_H_
-
- #include "../common/base.h"
- #include "xydbl.h"
-
- class SEGMENT {
- XY_DBL m_p1;
- XY_DBL m_p2;
- public:
- SEGMENT(const XY_DBL& p1, const XY_DBL& p2)
- : m_p1(p1), m_p2(p2) {}
- const XY_DBL& p1() const { return m_p1; }
- const XY_DBL& p2() const { return m_p2; }
- bool is_vertical() const { return m_p1.x() == m_p2.x(); }
- bool is_x_on_segment(double x) const {
- return (minimum(m_p1.x(), m_p2.x()) <= x)
- && (x <= maximum(m_p1.x(), m_p2.x()));
- }
- bool is_y_on_segment(double y) const {
- return (minimum(m_p1.y(), m_p2.y()) <= y)
- && (y <= maximum(m_p1.y(), m_p2.y()));
- }
- XY_DBL get_vector() const {
- return XY_DBL(m_p2.x() - m_p1.x(), m_p2.y() - m_p1.y());
- }
- };
-
- #endif /* _SEG_H_ */
-